package d4_homework;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class FirstQuestion {
    public static void main(String[] args) throws Exception {
        //目标: 掌握java中的xml解析的基本使用, 以及理解其在实际开发中的应用
        //1、创建SAXReader解析器对象
        SAXReader saxReader = new SAXReader();

        //2、user03.xml文件读成一个Document对象->里面封装了这个xml的所有数据
        Document document = saxReader.read("" +
                "javapromax\\day11-speical-file-log-code\\src\\user03.xml");

        //3、获取xml文件的根元素对象
        Element rootElement = document.getRootElement();

        //4、创建一个Map集合进行存储User的ia与对象
        Map<Integer, User> users = new HashMap<>();//使用多态进行书写

        //5、获取根元素下的所有user的字子元素
        List<Element> userElement = rootElement.elements("user");

        //6、遍历每一个字元素
        for (Element everUserElement : userElement) {
            //7、创建User用与封装数据
            User user = new User();
            //8、获取相应的数据进行封装到user中去
            user.setName(everUserElement.element("name").getText());
            user.setSex(everUserElement.element("sex").getText().charAt(0));
            user.setAddress(everUserElement.element("address").getTextTrim());
            user.setAddress(everUserElement.element("password").getTextTrim());

            //9、将获取到的user压到Map集合里面去
            users.put(Integer.valueOf(everUserElement.attributeValue("id")), user);
        }

        //10、遍历集合,进行输出--->展示数据
        users.forEach((k, v) -> System.out.println("id: " + k + "====>" + "信息如下:" + v));

    }
}
